One type of the instructions used in general-purpose processors is a shift instruction. A shift instruction is typically a two-operand instruction. In the execution of this instruction, the data to be shifted is typically contained in one of the source operands, while the amount by which the data is to be shifted is contained in a second source operand. For the specific example of signed 32-bit data, the result is limited to 0x7FFFFFFFh, which is thus considered to be the highest positive number that can be accurately represented as signed 32-bit data. For shifting operands in which more than 32 bits of data is needed, additional logic is needed for the computation of the result. The computation for this result is often part of a timing critical path, especially if the instruction is to be executed in a single cycle, and thus can be limiting to the speed of a processor.